﻿#pragma once
#include "yzrutil.h"
#include <vector>
#include "lang/String.h"

namespace yzrilyzr_io{
	EBCLASS(File){
	private:
	yzrilyzr_lang::String path;
	public:
	File(const yzrilyzr_lang::String & parent, const yzrilyzr_lang::String & child);
	File(const File & parent, const yzrilyzr_lang::String & child);
	File(const yzrilyzr_lang::String & path);
	File(const char * path);
	File & operator=(const File & sp);
	File(const File & sp);
	uint64_t length() const;
	yzrilyzr_lang::String getAbsolutePath() const;
	yzrilyzr_lang::String getName() const;
	yzrilyzr_lang::String getParent() const;
	bool exists() const;
	bool isFile() const;
	bool isDirectory() const;
	bool deleteFile() const;
	bool mkdirs() const;
	std::vector<File> listFiles()const;
	std::vector<yzrilyzr_lang::String> list()const;
	yzrilyzr_lang::String toString()const override;
	};
}